//axios第一次封装：封装基地址+拦截器
//默认导出
//下载导入axios
import axios from "axios"

//创建一个新的axios实例,并且设置基地址  一个项目有多个基地址
const request = axios.create({
    baseURL:'http://interview-api-t.itheima.net',
    timeout:10000
})
import { getToken } from "./storage"
//拦截器
//1.请求拦截器
request.interceptors.request.use(config => {
    //如果有token
    if(getToken()){
        config.headers.Authorization = `Bearer ${getToken()}`
    }
    //config：请求报文
    return config
},error =>{
    //对请求错误做些什么
    return Promise.reject(error)
})

import {Toast} from 'vant'
import router from "@/router"
//响应拦截器
request.interceptors.response.use(response => {
    //response :响应报文:结构res.data 
    return response.data
}, error => {
    //对响应错误做些什么
    //统一错误提示
    debugger
    Toast.fail(error.response.data.message)
    //判断是不是401，token过期跳转登录页
    if(error.response.status === 401){
        Toast.fail('token过期请重新登录')
        router.push('/logon')
    }
    return Promise.reject(error)
})
//导出repuest
export default request
